package org.groupg.practice;

import com.univocity.parsers.common.ParsingContext;
import com.univocity.parsers.common.processor.RowProcessor;
import com.univocity.parsers.csv.CsvFormat;
import com.univocity.parsers.csv.CsvParser;
import com.univocity.parsers.csv.CsvParserSettings;

import java.io.File;

public class CustomDelimiterReader {
    public static void main(String[] args) {
        File csvFile = new File("data/custom_delimiter.csv");

        CsvParserSettings settings = new CsvParserSettings();


        // 设置多字符分隔符（需要自定义处理）

        settings.setFormat(new CsvFormat() {
            @Override
            public String getDelimiterString() {
                return "#|#"; // 不使用单字符分隔符
            }

            @Override
            public String getLineSeparatorString() {
                return "$|$";
            }
        });

        // 自定义行处理器处理多字符分隔符
        settings.setProcessor(new RowProcessor() {
            @Override
            public void processStarted(ParsingContext context) {
                System.out.println("开始解析");
            }

            @Override
            public void rowProcessed(String[] row, ParsingContext context) {
                // 手动分割行（假设分隔符是 "||"）
                System.out.println(context.comments());
                System.out.println(java.util.Arrays.toString(row));
            }

            @Override
            public void processEnded(ParsingContext context) {
                System.out.println("解析完成");
            }
        });

        CsvParser parser = new CsvParser(settings);
        parser.parse(csvFile);
    }
}
